Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove extraneous content from block switcher aria menu #67647

Open
wants to merge 7 commits into
base: trunk
Choose a base branch
from

Conversation

afercia
Copy link
Contributor

@afercia afercia commented Dec 5, 2024

Fixes #67579

What?

The block switcher menu contains informative paragraphs that break the ARIA menu pattern.

Why?

The block switcher menu is an ARIA menu and should only contain menu items. Any other content such as paragraphs etc. should not be part of an ARIA menu and should be moved elsewhere.

How?

  • Moves the 'is connected' info to the settings panel card.
  • Removes the 'No transforms' text and disables (with aria-disabled) the menu when there are no transforms.
  • Moves the logic to determine whether the menu has transforms from BlockSwitcherDropdownMenuContents to BlockSwitcher. This is necessary to disable the menu when there are no transforms.
  • Minor adjustments to make the multi-selection panel card be more consistent with the block card in terms of markup and styling.
  • Minor: prevents the block switcher to show a tooltip when it already shows visible label with the same text.

Design Cc @WordPress/gutenberg-design
So far, I moved the 'is connected' message to the settings panel card and used the 'connection' icon. Any design feedback welcome. Screenshot:

Screenshot 2024-12-06 at 13 39 44

Testing Instructions

  • Have two or more blocks with attributes connected to a Bindings API source.
  • Select one of the bound blocks,
  • Observe the 'is connected' info is no longer shown in the block switcher menu and has moved to the settings panel.
  • Select two bound blocks.
  • Observe again the 'is connected' info is no longer shown in the block switcher menu and has moved to the settings panel.
  • Add a List block with a list item.
  • Select the List item.
  • Observe the block switcher button in the list item block toolbar is disabled. Previously, it was still enabled and the menu only used to show a 'No transforms.' text.
  • Go to the Site editor and select a template part in the canvas e.g. a Header.
  • Observe the block switcher button in the block toolbar is disabled (with aria-disabled). Previously, it was still enabled and the menu only used to show a 'No transforms.' text.
  • Double check the block switcher menu and the transforms always work as expected under all conditions:
    • with various block types to check normal transforms, cariaation transforms (e.g. a Group block), Styles, etc.
    • with templates
    • with single and multiple block selected

Testing Instructions for Keyboard

Screenshots or screencast

The block switcher menu when:

  1. it's disabled because there are no transforms and no other content
  2. With multiple selection, it shows a tooltip 'Multiple blocks selected', as expected

Screenshot 2024-12-06 at 13 42 04

Before After

@afercia afercia added [Type] Bug An existing feature does not function as intended [Focus] Accessibility (a11y) Changes that impact accessibility and need corresponding review (e.g. markup changes). [Feature] Block Transforms Block transforms from one block to another [Package] Block editor /packages/block-editor [Feature] Block bindings labels Dec 5, 2024
@afercia afercia force-pushed the fix/block-switcher-aria-menu-extraneous-content branch from d4f15dd to e186f05 Compare December 6, 2024 08:59
Copy link

github-actions bot commented Dec 6, 2024

Size Change: +135 B (+0.01%)

Total Size: 1.84 MB

Filename Size Change
build/block-editor/index.min.js 259 kB +115 B (+0.04%)
build/block-editor/style-rtl.css 15.7 kB +10 B (+0.06%)
build/block-editor/style.css 15.7 kB +10 B (+0.06%)
ℹ️ View Unchanged
Filename Size
build-module/a11y/index.min.js 482 B
build-module/block-library/file/view.min.js 447 B
build-module/block-library/form/view.min.js 533 B
build-module/block-library/image/view.min.js 1.77 kB
build-module/block-library/navigation/view.min.js 1.16 kB
build-module/block-library/query/view.min.js 742 B
build-module/block-library/search/view.min.js 616 B
build-module/interactivity-router/index.min.js 3.04 kB
build-module/interactivity/debug.min.js 17.3 kB
build-module/interactivity/index.min.js 13.7 kB
build/a11y/index.min.js 952 B
build/annotations/index.min.js 2.26 kB
build/api-fetch/index.min.js 2.32 kB
build/autop/index.min.js 2.12 kB
build/blob/index.min.js 579 B
build/block-directory/index.min.js 7.26 kB
build/block-directory/style-rtl.css 1 kB
build/block-directory/style.css 1 kB
build/block-editor/content-rtl.css 4.47 kB
build/block-editor/content.css 4.46 kB
build/block-editor/default-editor-styles-rtl.css 394 B
build/block-editor/default-editor-styles.css 394 B
build/block-library/blocks/archives/editor-rtl.css 84 B
build/block-library/blocks/archives/editor.css 83 B
build/block-library/blocks/archives/style-rtl.css 90 B
build/block-library/blocks/archives/style.css 90 B
build/block-library/blocks/audio/editor-rtl.css 149 B
build/block-library/blocks/audio/editor.css 151 B
build/block-library/blocks/audio/style-rtl.css 132 B
build/block-library/blocks/audio/style.css 132 B
build/block-library/blocks/audio/theme-rtl.css 134 B
build/block-library/blocks/audio/theme.css 134 B
build/block-library/blocks/avatar/editor-rtl.css 115 B
build/block-library/blocks/avatar/editor.css 115 B
build/block-library/blocks/avatar/style-rtl.css 104 B
build/block-library/blocks/avatar/style.css 104 B
build/block-library/blocks/button/editor-rtl.css 265 B
build/block-library/blocks/button/editor.css 265 B
build/block-library/blocks/button/style-rtl.css 555 B
build/block-library/blocks/button/style.css 555 B
build/block-library/blocks/buttons/editor-rtl.css 291 B
build/block-library/blocks/buttons/editor.css 291 B
build/block-library/blocks/buttons/style-rtl.css 345 B
build/block-library/blocks/buttons/style.css 345 B
build/block-library/blocks/calendar/style-rtl.css 240 B
build/block-library/blocks/calendar/style.css 240 B
build/block-library/blocks/categories/editor-rtl.css 132 B
build/block-library/blocks/categories/editor.css 131 B
build/block-library/blocks/categories/style-rtl.css 152 B
build/block-library/blocks/categories/style.css 152 B
build/block-library/blocks/code/editor-rtl.css 53 B
build/block-library/blocks/code/editor.css 53 B
build/block-library/blocks/code/style-rtl.css 139 B
build/block-library/blocks/code/style.css 139 B
build/block-library/blocks/code/theme-rtl.css 122 B
build/block-library/blocks/code/theme.css 122 B
build/block-library/blocks/columns/editor-rtl.css 108 B
build/block-library/blocks/columns/editor.css 108 B
build/block-library/blocks/columns/style-rtl.css 420 B
build/block-library/blocks/columns/style.css 420 B
build/block-library/blocks/comment-author-avatar/editor-rtl.css 124 B
build/block-library/blocks/comment-author-avatar/editor.css 124 B
build/block-library/blocks/comment-author-name/style-rtl.css 72 B
build/block-library/blocks/comment-author-name/style.css 72 B
build/block-library/blocks/comment-content/style-rtl.css 120 B
build/block-library/blocks/comment-content/style.css 120 B
build/block-library/blocks/comment-date/style-rtl.css 65 B
build/block-library/blocks/comment-date/style.css 65 B
build/block-library/blocks/comment-edit-link/style-rtl.css 70 B
build/block-library/blocks/comment-edit-link/style.css 70 B
build/block-library/blocks/comment-reply-link/style-rtl.css 71 B
build/block-library/blocks/comment-reply-link/style.css 71 B
build/block-library/blocks/comment-template/style-rtl.css 200 B
build/block-library/blocks/comment-template/style.css 199 B
build/block-library/blocks/comments-pagination-numbers/editor-rtl.css 122 B
build/block-library/blocks/comments-pagination-numbers/editor.css 121 B
build/block-library/blocks/comments-pagination/editor-rtl.css 238 B
build/block-library/blocks/comments-pagination/editor.css 231 B
build/block-library/blocks/comments-pagination/style-rtl.css 245 B
build/block-library/blocks/comments-pagination/style.css 241 B
build/block-library/blocks/comments-title/editor-rtl.css 75 B
build/block-library/blocks/comments-title/editor.css 75 B
build/block-library/blocks/comments/editor-rtl.css 842 B
build/block-library/blocks/comments/editor.css 842 B
build/block-library/blocks/comments/style-rtl.css 637 B
build/block-library/blocks/comments/style.css 637 B
build/block-library/blocks/cover/editor-rtl.css 631 B
build/block-library/blocks/cover/editor.css 631 B
build/block-library/blocks/cover/style-rtl.css 1.7 kB
build/block-library/blocks/cover/style.css 1.69 kB
build/block-library/blocks/details/editor-rtl.css 65 B
build/block-library/blocks/details/editor.css 65 B
build/block-library/blocks/details/style-rtl.css 86 B
build/block-library/blocks/details/style.css 86 B
build/block-library/blocks/embed/editor-rtl.css 331 B
build/block-library/blocks/embed/editor.css 331 B
build/block-library/blocks/embed/style-rtl.css 419 B
build/block-library/blocks/embed/style.css 419 B
build/block-library/blocks/embed/theme-rtl.css 133 B
build/block-library/blocks/embed/theme.css 133 B
build/block-library/blocks/file/editor-rtl.css 326 B
build/block-library/blocks/file/editor.css 326 B
build/block-library/blocks/file/style-rtl.css 278 B
build/block-library/blocks/file/style.css 279 B
build/block-library/blocks/footnotes/style-rtl.css 198 B
build/block-library/blocks/footnotes/style.css 197 B
build/block-library/blocks/form-input/editor-rtl.css 229 B
build/block-library/blocks/form-input/editor.css 229 B
build/block-library/blocks/form-input/style-rtl.css 357 B
build/block-library/blocks/form-input/style.css 357 B
build/block-library/blocks/form-submission-notification/editor-rtl.css 344 B
build/block-library/blocks/form-submission-notification/editor.css 341 B
build/block-library/blocks/form-submit-button/style-rtl.css 69 B
build/block-library/blocks/form-submit-button/style.css 69 B
build/block-library/blocks/freeform/editor-rtl.css 2.6 kB
build/block-library/blocks/freeform/editor.css 2.6 kB
build/block-library/blocks/gallery/editor-rtl.css 946 B
build/block-library/blocks/gallery/editor.css 951 B
build/block-library/blocks/gallery/style-rtl.css 1.83 kB
build/block-library/blocks/gallery/style.css 1.82 kB
build/block-library/blocks/gallery/theme-rtl.css 108 B
build/block-library/blocks/gallery/theme.css 108 B
build/block-library/blocks/group/editor-rtl.css 334 B
build/block-library/blocks/group/editor.css 334 B
build/block-library/blocks/group/style-rtl.css 103 B
build/block-library/blocks/group/style.css 103 B
build/block-library/blocks/group/theme-rtl.css 79 B
build/block-library/blocks/group/theme.css 79 B
build/block-library/blocks/heading/style-rtl.css 188 B
build/block-library/blocks/heading/style.css 188 B
build/block-library/blocks/html/editor-rtl.css 346 B
build/block-library/blocks/html/editor.css 347 B
build/block-library/blocks/image/editor-rtl.css 799 B
build/block-library/blocks/image/editor.css 799 B
build/block-library/blocks/image/style-rtl.css 1.6 kB
build/block-library/blocks/image/style.css 1.59 kB
build/block-library/blocks/image/theme-rtl.css 137 B
build/block-library/blocks/image/theme.css 137 B
build/block-library/blocks/latest-comments/style-rtl.css 355 B
build/block-library/blocks/latest-comments/style.css 354 B
build/block-library/blocks/latest-posts/editor-rtl.css 139 B
build/block-library/blocks/latest-posts/editor.css 138 B
build/block-library/blocks/latest-posts/style-rtl.css 520 B
build/block-library/blocks/latest-posts/style.css 520 B
build/block-library/blocks/list/style-rtl.css 107 B
build/block-library/blocks/list/style.css 107 B
build/block-library/blocks/loginout/style-rtl.css 61 B
build/block-library/blocks/loginout/style.css 61 B
build/block-library/blocks/media-text/editor-rtl.css 321 B
build/block-library/blocks/media-text/editor.css 320 B
build/block-library/blocks/media-text/style-rtl.css 552 B
build/block-library/blocks/media-text/style.css 550 B
build/block-library/blocks/more/editor-rtl.css 427 B
build/block-library/blocks/more/editor.css 427 B
build/block-library/blocks/navigation-link/editor-rtl.css 644 B
build/block-library/blocks/navigation-link/editor.css 645 B
build/block-library/blocks/navigation-link/style-rtl.css 192 B
build/block-library/blocks/navigation-link/style.css 191 B
build/block-library/blocks/navigation-submenu/editor-rtl.css 295 B
build/block-library/blocks/navigation-submenu/editor.css 294 B
build/block-library/blocks/navigation/editor-rtl.css 2.2 kB
build/block-library/blocks/navigation/editor.css 2.2 kB
build/block-library/blocks/navigation/style-rtl.css 2.24 kB
build/block-library/blocks/navigation/style.css 2.23 kB
build/block-library/blocks/nextpage/editor-rtl.css 392 B
build/block-library/blocks/nextpage/editor.css 392 B
build/block-library/blocks/page-list/editor-rtl.css 378 B
build/block-library/blocks/page-list/editor.css 378 B
build/block-library/blocks/page-list/style-rtl.css 192 B
build/block-library/blocks/page-list/style.css 192 B
build/block-library/blocks/paragraph/editor-rtl.css 236 B
build/block-library/blocks/paragraph/editor.css 236 B
build/block-library/blocks/paragraph/style-rtl.css 341 B
build/block-library/blocks/paragraph/style.css 340 B
build/block-library/blocks/post-author-biography/style-rtl.css 74 B
build/block-library/blocks/post-author-biography/style.css 74 B
build/block-library/blocks/post-author-name/style-rtl.css 69 B
build/block-library/blocks/post-author-name/style.css 69 B
build/block-library/blocks/post-author/editor-rtl.css 107 B
build/block-library/blocks/post-author/editor.css 107 B
build/block-library/blocks/post-author/style-rtl.css 188 B
build/block-library/blocks/post-author/style.css 189 B
build/block-library/blocks/post-comments-form/editor-rtl.css 96 B
build/block-library/blocks/post-comments-form/editor.css 96 B
build/block-library/blocks/post-comments-form/style-rtl.css 527 B
build/block-library/blocks/post-comments-form/style.css 528 B
build/block-library/blocks/post-content/style-rtl.css 61 B
build/block-library/blocks/post-content/style.css 61 B
build/block-library/blocks/post-date/style-rtl.css 62 B
build/block-library/blocks/post-date/style.css 62 B
build/block-library/blocks/post-excerpt/editor-rtl.css 71 B
build/block-library/blocks/post-excerpt/editor.css 71 B
build/block-library/blocks/post-excerpt/style-rtl.css 155 B
build/block-library/blocks/post-excerpt/style.css 155 B
build/block-library/blocks/post-featured-image/editor-rtl.css 729 B
build/block-library/blocks/post-featured-image/editor.css 726 B
build/block-library/blocks/post-featured-image/style-rtl.css 347 B
build/block-library/blocks/post-featured-image/style.css 347 B
build/block-library/blocks/post-navigation-link/style-rtl.css 215 B
build/block-library/blocks/post-navigation-link/style.css 214 B
build/block-library/blocks/post-template/editor-rtl.css 99 B
build/block-library/blocks/post-template/editor.css 98 B
build/block-library/blocks/post-template/style-rtl.css 399 B
build/block-library/blocks/post-template/style.css 398 B
build/block-library/blocks/post-terms/style-rtl.css 96 B
build/block-library/blocks/post-terms/style.css 96 B
build/block-library/blocks/post-time-to-read/style-rtl.css 70 B
build/block-library/blocks/post-time-to-read/style.css 70 B
build/block-library/blocks/post-title/style-rtl.css 162 B
build/block-library/blocks/post-title/style.css 162 B
build/block-library/blocks/preformatted/style-rtl.css 125 B
build/block-library/blocks/preformatted/style.css 125 B
build/block-library/blocks/pullquote/editor-rtl.css 134 B
build/block-library/blocks/pullquote/editor.css 134 B
build/block-library/blocks/pullquote/style-rtl.css 351 B
build/block-library/blocks/pullquote/style.css 350 B
build/block-library/blocks/pullquote/theme-rtl.css 167 B
build/block-library/blocks/pullquote/theme.css 167 B
build/block-library/blocks/query-pagination-numbers/editor-rtl.css 121 B
build/block-library/blocks/query-pagination-numbers/editor.css 118 B
build/block-library/blocks/query-pagination/editor-rtl.css 154 B
build/block-library/blocks/query-pagination/editor.css 154 B
build/block-library/blocks/query-pagination/style-rtl.css 237 B
build/block-library/blocks/query-pagination/style.css 237 B
build/block-library/blocks/query-title/style-rtl.css 64 B
build/block-library/blocks/query-title/style.css 64 B
build/block-library/blocks/query/editor-rtl.css 527 B
build/block-library/blocks/query/editor.css 527 B
build/block-library/blocks/quote/style-rtl.css 238 B
build/block-library/blocks/quote/style.css 238 B
build/block-library/blocks/quote/theme-rtl.css 233 B
build/block-library/blocks/quote/theme.css 236 B
build/block-library/blocks/read-more/style-rtl.css 138 B
build/block-library/blocks/read-more/style.css 138 B
build/block-library/blocks/rss/editor-rtl.css 101 B
build/block-library/blocks/rss/editor.css 101 B
build/block-library/blocks/rss/style-rtl.css 288 B
build/block-library/blocks/rss/style.css 287 B
build/block-library/blocks/search/editor-rtl.css 199 B
build/block-library/blocks/search/editor.css 199 B
build/block-library/blocks/search/style-rtl.css 660 B
build/block-library/blocks/search/style.css 658 B
build/block-library/blocks/search/theme-rtl.css 113 B
build/block-library/blocks/search/theme.css 113 B
build/block-library/blocks/separator/editor-rtl.css 100 B
build/block-library/blocks/separator/editor.css 100 B
build/block-library/blocks/separator/style-rtl.css 248 B
build/block-library/blocks/separator/style.css 248 B
build/block-library/blocks/separator/theme-rtl.css 195 B
build/block-library/blocks/separator/theme.css 195 B
build/block-library/blocks/shortcode/editor-rtl.css 286 B
build/block-library/blocks/shortcode/editor.css 286 B
build/block-library/blocks/site-logo/editor-rtl.css 806 B
build/block-library/blocks/site-logo/editor.css 803 B
build/block-library/blocks/site-logo/style-rtl.css 218 B
build/block-library/blocks/site-logo/style.css 218 B
build/block-library/blocks/site-tagline/editor-rtl.css 87 B
build/block-library/blocks/site-tagline/editor.css 87 B
build/block-library/blocks/site-tagline/style-rtl.css 65 B
build/block-library/blocks/site-tagline/style.css 65 B
build/block-library/blocks/site-title/editor-rtl.css 85 B
build/block-library/blocks/site-title/editor.css 85 B
build/block-library/blocks/site-title/style-rtl.css 143 B
build/block-library/blocks/site-title/style.css 143 B
build/block-library/blocks/social-link/editor-rtl.css 309 B
build/block-library/blocks/social-link/editor.css 309 B
build/block-library/blocks/social-links/editor-rtl.css 727 B
build/block-library/blocks/social-links/editor.css 724 B
build/block-library/blocks/social-links/style-rtl.css 1.51 kB
build/block-library/blocks/social-links/style.css 1.51 kB
build/block-library/blocks/spacer/editor-rtl.css 346 B
build/block-library/blocks/spacer/editor.css 346 B
build/block-library/blocks/spacer/style-rtl.css 48 B
build/block-library/blocks/spacer/style.css 48 B
build/block-library/blocks/table-of-contents/style-rtl.css 83 B
build/block-library/blocks/table-of-contents/style.css 83 B
build/block-library/blocks/table/editor-rtl.css 394 B
build/block-library/blocks/table/editor.css 394 B
build/block-library/blocks/table/style-rtl.css 640 B
build/block-library/blocks/table/style.css 639 B
build/block-library/blocks/table/theme-rtl.css 152 B
build/block-library/blocks/table/theme.css 152 B
build/block-library/blocks/tag-cloud/editor-rtl.css 92 B
build/block-library/blocks/tag-cloud/editor.css 92 B
build/block-library/blocks/tag-cloud/style-rtl.css 266 B
build/block-library/blocks/tag-cloud/style.css 265 B
build/block-library/blocks/template-part/editor-rtl.css 368 B
build/block-library/blocks/template-part/editor.css 368 B
build/block-library/blocks/template-part/theme-rtl.css 113 B
build/block-library/blocks/template-part/theme.css 113 B
build/block-library/blocks/term-description/style-rtl.css 126 B
build/block-library/blocks/term-description/style.css 126 B
build/block-library/blocks/text-columns/editor-rtl.css 95 B
build/block-library/blocks/text-columns/editor.css 95 B
build/block-library/blocks/text-columns/style-rtl.css 165 B
build/block-library/blocks/text-columns/style.css 165 B
build/block-library/blocks/verse/style-rtl.css 98 B
build/block-library/blocks/verse/style.css 98 B
build/block-library/blocks/video/editor-rtl.css 441 B
build/block-library/blocks/video/editor.css 442 B
build/block-library/blocks/video/style-rtl.css 192 B
build/block-library/blocks/video/style.css 192 B
build/block-library/blocks/video/theme-rtl.css 134 B
build/block-library/blocks/video/theme.css 134 B
build/block-library/classic-rtl.css 179 B
build/block-library/classic.css 179 B
build/block-library/common-rtl.css 1.08 kB
build/block-library/common.css 1.08 kB
build/block-library/editor-elements-rtl.css 75 B
build/block-library/editor-elements.css 75 B
build/block-library/editor-rtl.css 11.8 kB
build/block-library/editor.css 11.8 kB
build/block-library/elements-rtl.css 54 B
build/block-library/elements.css 54 B
build/block-library/index.min.js 224 kB
build/block-library/reset-rtl.css 472 B
build/block-library/reset.css 472 B
build/block-library/style-rtl.css 15 kB
build/block-library/style.css 15 kB
build/block-library/theme-rtl.css 708 B
build/block-library/theme.css 712 B
build/block-serialization-default-parser/index.min.js 1.12 kB
build/block-serialization-spec-parser/index.min.js 2.87 kB
build/blocks/index.min.js 53 kB
build/commands/index.min.js 16.2 kB
build/commands/style-rtl.css 955 B
build/commands/style.css 952 B
build/components/index.min.js 229 kB
build/components/style-rtl.css 12.6 kB
build/components/style.css 12.6 kB
build/compose/index.min.js 12.8 kB
build/core-commands/index.min.js 3.09 kB
build/core-data/index.min.js 74.3 kB
build/customize-widgets/index.min.js 11 kB
build/customize-widgets/style-rtl.css 1.44 kB
build/customize-widgets/style.css 1.44 kB
build/data-controls/index.min.js 641 B
build/data/index.min.js 8.69 kB
build/date/index.min.js 18 kB
build/deprecated/index.min.js 458 B
build/dom-ready/index.min.js 325 B
build/dom/index.min.js 4.67 kB
build/edit-post/classic-rtl.css 578 B
build/edit-post/classic.css 580 B
build/edit-post/index.min.js 13.4 kB
build/edit-post/style-rtl.css 2.75 kB
build/edit-post/style.css 2.75 kB
build/edit-site/index.min.js 221 kB
build/edit-site/posts-rtl.css 7.46 kB
build/edit-site/posts.css 7.46 kB
build/edit-site/style-rtl.css 13.7 kB
build/edit-site/style.css 13.7 kB
build/edit-widgets/index.min.js 17.6 kB
build/edit-widgets/style-rtl.css 4.07 kB
build/edit-widgets/style.css 4.08 kB
build/editor/index.min.js 115 kB
build/editor/style-rtl.css 9.32 kB
build/editor/style.css 9.32 kB
build/element/index.min.js 4.82 kB
build/escape-html/index.min.js 537 B
build/format-library/index.min.js 8.05 kB
build/format-library/style-rtl.css 476 B
build/format-library/style.css 476 B
build/hooks/index.min.js 1.65 kB
build/html-entities/index.min.js 445 B
build/i18n/index.min.js 3.58 kB
build/is-shallow-equal/index.min.js 526 B
build/keyboard-shortcuts/index.min.js 1.31 kB
build/keycodes/index.min.js 1.46 kB
build/list-reusable-blocks/index.min.js 2.13 kB
build/list-reusable-blocks/style-rtl.css 852 B
build/list-reusable-blocks/style.css 852 B
build/media-utils/index.min.js 3.61 kB
build/notices/index.min.js 946 B
build/nux/index.min.js 1.62 kB
build/nux/style-rtl.css 749 B
build/nux/style.css 745 B
build/patterns/index.min.js 7.37 kB
build/patterns/style-rtl.css 687 B
build/patterns/style.css 685 B
build/plugins/index.min.js 1.86 kB
build/preferences-persistence/index.min.js 2.06 kB
build/preferences/index.min.js 2.9 kB
build/preferences/style-rtl.css 554 B
build/preferences/style.css 554 B
build/primitives/index.min.js 829 B
build/priority-queue/index.min.js 1.54 kB
build/private-apis/index.min.js 978 B
build/react-i18n/index.min.js 630 B
build/react-refresh-entry/index.min.js 9.47 kB
build/react-refresh-runtime/index.min.js 6.76 kB
build/redux-routine/index.min.js 2.7 kB
build/reusable-blocks/index.min.js 2.55 kB
build/reusable-blocks/style-rtl.css 256 B
build/reusable-blocks/style.css 256 B
build/rich-text/index.min.js 10.3 kB
build/router/index.min.js 5.42 kB
build/server-side-render/index.min.js 1.94 kB
build/shortcode/index.min.js 1.4 kB
build/style-engine/index.min.js 2.04 kB
build/token-list/index.min.js 581 B
build/upload-media/index.min.js 3.85 kB
build/url/index.min.js 3.9 kB
build/vendors/react-dom.min.js 41.7 kB
build/vendors/react-jsx-runtime.min.js 556 B
build/vendors/react.min.js 4.02 kB
build/viewport/index.min.js 965 B
build/vips/index.min.js 36.2 kB
build/warning/index.min.js 250 B
build/widgets/index.min.js 7.16 kB
build/widgets/style-rtl.css 1.16 kB
build/widgets/style.css 1.16 kB
build/wordcount/index.min.js 1.03 kB

compressed-size-action

@afercia afercia added the Needs Design Feedback Needs general design feedback. label Dec 6, 2024
@afercia afercia marked this pull request as ready for review December 6, 2024 13:57
@afercia afercia requested a review from ellatrix as a code owner December 6, 2024 13:57
Copy link

github-actions bot commented Dec 6, 2024

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Co-authored-by: afercia <[email protected]>
Co-authored-by: richtabor <[email protected]>
Co-authored-by: jasmussen <[email protected]>
Co-authored-by: jameskoster <[email protected]>
Co-authored-by: t-hamano <[email protected]>
Co-authored-by: cbravobernal <[email protected]>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

@richtabor
Copy link
Member

Design Cc @WordPress/gutenberg-design
So far, I moved the 'is connected' message to the settings panel card and used the 'connection' icon. Any design feedback welcome. Screenshot

Can you include a before/after for comparison? I'm not sure what I'm looking at here.

@afercia
Copy link
Contributor Author

afercia commented Dec 6, 2024

Can you include a before/after for comparison? I'm not sure what I'm looking at here.

The 'before' screenshots are on the associated issue #67579

@afercia afercia force-pushed the fix/block-switcher-aria-menu-extraneous-content branch from 0b0448c to 58c1fc7 Compare December 6, 2024 14:42
@richtabor
Copy link
Member

The 'before' screenshots are on the associated issue #67579

Instead of hunting, it'd be great if you brought these front-and-center, so reviewers understand what you are changing when there are visual changes.

@richtabor richtabor requested a review from a team December 6, 2024 16:36
Copy link
Member

@richtabor richtabor left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not an appropriate design for this change. It cannot scale well, particularly when there is any other elements rendered in the block card. Nor is it particularly helpful having this buried in the block transforms menu.

I propose just removing it as originally intended, but not adding it to the block card.

There are existing patterns we could potentially explore as follow-ups, such as following the block name convention ("Main (Group)") with "Connected" or rendering the connected icon (or the "Connected" label perhaps) in a badge to the right of the block name, as seen in List view for anchor links. I lean towards the latter, if this is significant enough to render.

CleanShot 2024-12-06 at 11 36 28

CleanShot 2024-12-06 at 11 43 54

CleanShot 2024-12-06 at 11 43 43

@afercia
Copy link
Contributor Author

afercia commented Dec 10, 2024

I'm glad with any design the design team may want to provide for the 'connected' info, as long as it is easily discoverable and accessible.

To me, the main goal is removing the extraneous, invalid, content from the ARIA menu. I'm also planning to create a follow-up to propose some linting tool to prevent other cases of invalid content within ARIA menus. I'd appreciate the design team to add to the guidelines that ARIA menus aren't the place for additional, extraneous, information that breaks the ARIA menu pattern.

I propose just removing it as originally intended, but not adding it to the block card.

I'm fine with removing it from the ARIA menu. However, an alternative design needs to be provided. Otherwise, there's no indication at all that a block is connected other than a different color of the block switcher icon in the block toolbar. That wouldn't be OK.

I think in previous conversations some contributors, including myself, already pointed out a few times that providing feedback by just saying 'No' isn't helpful. Design is about solving problems. Just removing this info doesn't solve the problem. Please provide an alternative option.

Cc @WordPress/gutenberg-design

@afercia afercia force-pushed the fix/block-switcher-aria-menu-extraneous-content branch from 58c1fc7 to 1a10a0f Compare December 10, 2024 13:58
@jasmussen
Copy link
Contributor

I echo Rich, proposing to remove the notice. In the case of an empty menu, that means the menu disappears. That proposal is based on reducing the number of variables in the UI.

@afercia
Copy link
Contributor Author

afercia commented Dec 10, 2024

Screenshot 2024-12-10 at 15 47 15

@richtabor can you please clarify what are the required code changes you asked for by submitting your code review? I don't see any. Thanks.

@afercia
Copy link
Contributor Author

afercia commented Dec 10, 2024

I echo Rich, proposing to remove the notice. In the case of an empty menu, that means the menu disappears. That proposal is based on reducing the number of variables in the UI.

@jasmussen I'm confused. What empty menu? We're discussing a place where to relocate the 'connected info' to. There must be a textual information that a block is connected. Can you please clarify? Thanks,

@afercia afercia force-pushed the fix/block-switcher-aria-menu-extraneous-content branch from 1a10a0f to 4cefff5 Compare December 11, 2024 09:39
@afercia afercia force-pushed the fix/block-switcher-aria-menu-extraneous-content branch from 4cefff5 to 467bf1d Compare December 18, 2024 12:59
@afercia
Copy link
Contributor Author

afercia commented Dec 18, 2024

This PR still waits for an actionable design feedback.
The 'This block is connected.' info must be shown somewhere. The block card seems a reasonable option to me. Any other actionable design is welcome. @WordPress/gutenberg-design thanks.

Copy link

github-actions bot commented Dec 18, 2024

Flaky tests detected in fc36e63.
Some tests passed with failed attempts. The failures may not be related to this commit but are still reported for visibility. See the documentation for more information.

🔍 Workflow run URL: https://github.com/WordPress/gutenberg/actions/runs/12414148623
📝 Reported issues:

@jameskoster
Copy link
Contributor

Something like this seems reasonable to me.

Screenshot 2024-12-18 at 16 48 31

@afercia
Copy link
Contributor Author

afercia commented Dec 19, 2024

Something like this seems reasonable to me.

Interesting. It would be nice to use the new Badge component for that, but it doesn't accept custom icons or colors. Would the 'info' badge fit this case? See the Storybook at https://wordpress.github.io/gutenberg/?path=/story/components-badge--info

@jameskoster
Copy link
Contributor

I was thinking that including the connection icon would help increase familiarity about its meaning, but after a quick check it doesn't seem to be used anywhere else, so the value is questionable.

And you're right, Badge intentionally doesn't support custom colors or icons to avoid diluting intent.

So yes, perhaps the info badge could work here.

@afercia
Copy link
Contributor Author

afercia commented Dec 19, 2024

So yes, perhaps the info badge could work here.

Thanks, I'm going to try it.

Edit: I see that #65641 / #68115 just landed and added a Badge to retain the block type info when the block has a custom name:

Screenshot 2024-12-19 at 12 54 56

As such, it makes sense to me to use one more badge for the 'connected info'.

@afercia afercia force-pushed the fix/block-switcher-aria-menu-extraneous-content branch from 467bf1d to fc36e63 Compare December 19, 2024 13:59
@afercia
Copy link
Contributor Author

afercia commented Dec 19, 2024

In the latest commit I'm trying the Badge component.

What is the preference for the wrapping when the block name is longer? A few examples in the screenshots below:

Screenshot 2024-12-19 at 14 54 18

@afercia
Copy link
Contributor Author

afercia commented Dec 19, 2024

Related also to the badge added in #65641 I would prefer the badges extra info to be placed outside from teh heading. The heading should only contain the block name, while at the moment contains also extra stuff that make the meaning of the heading not ideal. E.g,:

Screenshot 2024-12-19 at 15 17 04

I guess it can be adjusted in this PR after any further design feedback has been addressed. Cc @getdave @t-hamano

@richtabor
Copy link
Member

richtabor commented Dec 19, 2024

This PR still waits for an actionable design feedback.
The 'This block is connected.' info must be shown somewhere.

Questioning this.

Why does "Connected" need to be shown, when it does not carry any weight or meaning other than indicating the block data source is externally sourced?

Wouldn't it be more helpful to see the actual values it's connected to? As is already the case in the "Attributes" panel. "Connected" carries no meaning on its own, without that additional context.

@afercia
Copy link
Contributor Author

afercia commented Dec 20, 2024

To me, there must be a clear indication that a block is connected. The mere presence of the Attributes section in the settings panel is not sufficient. I would love to see the 'connected' info be even more prominent in the canvas as the only indication there so far is the different color of the block switcher button icon, which is only color and not sufficient.

@WordPress/gutenberg-design I would appreciate receiving consistent and non-contradictory feedback because going back and forth to update a PR every time someone changes their mind on details that I would consider really minor is honestly frustrating.

I will put this PR on hold. Please do let me know when there's some agreement on the design. Thanks.

@afercia
Copy link
Contributor Author

afercia commented Dec 20, 2024

Regarding the most appropriate terminology to use, I would like to remind everyone that for the WordPress 6.7 release this feature has been presented to the public as the ability to connect blocks and custom fields. As such, I think the same terminology must be used in the UI.

Quoting from the release post:

Connect blocks and custom fields with no hassle (or code)

This feature introduces a new UI for connecting blocks to custom fields ...

@jameskoster
Copy link
Contributor

I'll defer to Rich if he feels strongly about not highlighting this detail in the block card 👍

@afercia
Copy link
Contributor Author

afercia commented Dec 20, 2024

I kindly insist: there must be a textual indication of the 'connected' info somewhere. Please eitehr provide an alternative approach or I'd suggest to keep the Badge. Thanks.

@richtabor
Copy link
Member

To me, there must be a clear indication that a block is connected. The mere presence of the Attributes section in the settings panel is not sufficient. I would love to see the 'connected' info be even more prominent in the canvas as the only indication there so far is the different color of the block switcher button icon, which is only color and not sufficient.

You have indicated why—which is what I am questioning. Why is it important to see "Connected" in the block card? If it does nothing, does it need to be there?

We should not populate the UI with more information, without deeply understanding the value of that additional UI.

@WordPress/gutenberg-design I would appreciate receiving consistent and non-contradictory feedback because going back and forth to update a PR every time someone changes their mind on details that I would consider really minor is honestly frustrating.

It's critical to stress the details; something we can all be better at.

I'm merely asking a question to validate the purpose of what you'd like to add. I would think we could do this amicably.

@t-hamano
Copy link
Contributor

I'm fine with removing it from the ARIA menu. However, an alternative design needs to be provided. Otherwise, there's no indication at all that a block is connected other than a different color of the block switcher icon in the block toolbar.

If color alone isn’t enough, how about including some text in the aria-label (tooltip) to indicate that the blocks are connected? Users using screen readers should be able to understand it:

image

@richtabor
Copy link
Member

If color alone isn’t enough, how about including some text in the aria-label (tooltip) to indicate that the blocks are connected? Users using screen readers should be able to understand it.

I think something like that is interesting.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Feature] Block bindings [Feature] Block Transforms Block transforms from one block to another [Focus] Accessibility (a11y) Changes that impact accessibility and need corresponding review (e.g. markup changes). Needs Design Feedback Needs general design feedback. [Package] Block editor /packages/block-editor [Type] Bug An existing feature does not function as intended
Projects
None yet
Development

Successfully merging this pull request may close these issues.

The block switcher 'Transform' menu should not contain extraneous content
5 participants